package com.stx.action;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;
import com.stx.entity.User;
import com.stx.service.UserService;

public class UserImage extends ActionSupport{
 
	private File file; // 上传文件的文件内容那个
	private String fileFileName; // 上传文件的文件名
	private String fileContentType; // 上传文件的MIME类型
    private UserService us;

	public UserService getUs() {
		return us;
	}

	public void setUs(UserService us) {
		this.us = us;
	}

	public File getFile() {
		return file;
	}

	public void setFile(File file) {
		this.file = file;
	}

	public String getFileFileName() {
		return fileFileName;
	}

	public void setFileFileName(String fileFileName) {
		this.fileFileName = fileFileName;
	}

	public String getFileContentType() {
		return fileContentType;
	}

	public void setFileContentType(String fileContentType) {
		this.fileContentType = fileContentType;
	}

	/*
	 * 得打文件路径
	 * 首先得到文件名更路径判断是否存在这个文件 如果存在重命名 
	 *                                      不存在继续使用
	 * 判断以前是否有头像     有则删除 无则不管
	 * */
	public String changeImg() {
		String imagPath;
		System.out.println(fileFileName+"\n"+fileContentType);
        User user=new User();
		User u=(User) ServletActionContext.getRequest().getSession().getAttribute("user");
		/*检查下session是否有效*/
		if(u==null){
			addActionError("请重新登陆！");
			return "sessionerror";
		}
		
        String path=ServletActionContext.getServletContext().getRealPath("/images/user");
        System.out.println("用户的头像地址"+path);
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
		fileFileName=sdf.format(new Date())+".jpg";
        imagPath=path+"//" + fileFileName;
		File getFile = new File(imagPath);
		
		FileInputStream fis;
		try {
			/*
			 * 判断下文件是否已经存在，已经存在或另外的名字用时间
			 * */
			
			fis = new FileInputStream(file);
			FileOutputStream fos = new FileOutputStream(getFile);
			int t = 0;
			while ((t = fis.read()) > -1) {
				fos.write(t);
			}
			fis.close();
			fos.flush();
			fos.close();
			/*
			 * 删除以前的头像
			 * */
			if(u.getUs_image()!=null){
				String path1=ServletActionContext.getServletContext().getRealPath("");
				System.out.println(path1);
				File oldImage=new File(path1+"//"+u.getUs_image());
				oldImage.delete();
			}
		    u.setUs_image("images/user/"+fileFileName);
			us.updateUser(u);
			addActionError("图像修改成功");
			user=us.findUser(u).get(0);
			ServletActionContext.getRequest().getSession().setAttribute("user", user);
			return "success";
		} catch (FileNotFoundException e) {
			addActionError("图像修改失败");
			e.printStackTrace();
		} catch (IOException e) {
			addActionError("图像修改失败");
			e.printStackTrace();
		}
		return "success";
	}
}